// 1.在普通函数定义的前面加上async关键字 普通函数就变成了异步函数
// 2.异步函数默认的返回值是promise对象
// 3.在异步函数内部使用throw关键字进行错误抛出

// await关键字
// 1.它只能出现在异步函数中
// 2.await promise 它可以暂停异步函数的执行 等待promise对象返回结果后再向下执行

// async function fc() {
//     //throw '出错';
//     return 123;
// }

// fc().then((result) => {
//     console.log(result);
// }).catch((err) => {
//     console.log(err);
// })

async function p1() {
    return 'p1';
}

async function p2() {
    return 'p2';
}

async function p3() {
    return 'p3';
}

async function p4() {
    let a = await p1();
    let b = await p2();
    let c = await p3();
    console.log(a + b + c);
}

p4();